for _ in range(int(input())):
word = input()
days = 1
memory = set()
for l in word:
memory.add(l)
if len(memory) > 3:
memory.clear()
memory.add(l)
days += 1
print(days)
#include<iostream>
#include<string>
using namespace std;
int main()
{
long long q,n,t;
string a;
char x,y,z;
cin>>q;
while(q--)
{
x=y=z=' ';
t=0;
cin>>a;
for(int i=0;i<a.size();i++)
{
if(x==' '&&y==' '&&z==' ')x=a[i];
else if(x!=' '&&y==' '&&z==' '&&a[i]!=x)y=a[i];
else if(x!=' '&&y!=' '&&z==' '&&a[i]!=x&&a[i]!=y)z=a[i];
else if(x!=' '&&y!=' '&&z!=' '&&a[i]!=x&&a[i]!=y&&a[i]!=z)
{
t++;
z=y=' ';
x=a[i];
}
}
if(x!=' '||y!=' '||z!=' ')t++;
cout<<t<<'\n';
}
}
553A - Kyoya and Colored Balls | 1364A - XXXXX |
1499B - Binary Removals | 1569C - Jury Meeting |
108A - Palindromic Times | 46A - Ball Game |
114A - Cifera | 776A - A Serial Killer |
25B - Phone numbers | 1633C - Kill the Monster |
1611A - Make Even | 1030B - Vasya and Cornfield |
1631A - Min Max Swap | 1296B - Food Buying |
133A - HQ9+ | 1650D - Twist the Permutation |
1209A - Paint the Numbers | 1234A - Equalize Prices Again |
1613A - Long Comparison | 1624B - Make AP |
660B - Seating On Bus | 405A - Gravity Flip |
499B - Lecture | 709A - Juicer |
1358C - Celex Update | 1466B - Last minute enhancements |
450B - Jzzhu and Sequences | 1582C - Grandma Capa Knits a Scarf |
492A - Vanya and Cubes | 217A - Ice Skating |